Communication networks are well-known in the computer communications field. By definition, a network is a group of computers and associated devices that are connected by communications facilities or links. Network connections can be of a permanent nature, such as via cables, or can be of a temporary nature, such as connections made through telephone or radio links. Networks may vary in size, from a local area network (LAN) consisting of a few computers or workstations and related devices, to a wide area network (WAN) which interconnects computers and LANs that are geographically dispersed, to a remote access service (RAS) which interconnects remote computers via temporary communication links. An internetwork, in turn, is the joining of multiple computer networks, both similar and dissimilar, by means of gateways or routers that facilitate data transfer and conversion from various networks. A well-known abbreviation for the term internetwork is "internet." As currently understood, the capitalized term "Internet" refers to the collection of networks and routers that use the Transmission Control Protocol/Internet Protocol (TCP/IP) to communicate with one another.
A representative section of the Internet 20 is shown in FIG. 1 (Prior Art) in which a plurality of local area networks (LANs) 24 and a wide area network (WAN) 26 are interconnected by routers 22. The routers 22 are generally special purpose computers used to interface one LAN or WAN to another. Communication links within the LANs may be twisted wire pair, or coaxial cable, while communication links between networks may utilize 56 Kbps analog telephone lines, 1 Mbps digital T-1 lines and/or 45 Mbps T-3 lines. Further, computers and other related electronic devices can be remotely connected to either the LANs 24 or WAN 26 via a modem and temporary telephone link. Such remote computers 28 and electronic devices 34 are shown in FIG. 1 as connected to one of the LANs 24 via a dotted line. It will be appreciated that the Internet comprises a vast number of such interconnected networks, computers and routers and that only a small, representative section of the Internet 20 is shown in FIG. 1.
With the advent of new and improved network technologies, virtually any device equipped with the necessary hardware can be permanently or temporarily connected to a LAN, WAN, etc., and thus, to the Internet via common communications links between disparate networks. These devices can include various types of computers, such as servers, workstations, personal device assistants, etc., or electronic devices such as facsimile machines, telephones, printers, etc. Each computer and/or electronic device that is connected to the Internet 20 and that is capable of communicating with other electronic devices or computers connected to the Internet can be referred to as a node. In addition, each node connected to the Internet 20 has the common ability to provide any other node connected to the Internet with certain services. Therefore, any node capable of providing a service is referred to as a "resource" for that service. For example, a facsimile machine connected to the Internet is a facsimile resource for providing facsimile reception and transmission services, while a server may be a database resource for providing information storage and retrieval services. Further, a node may provide multiple resources, e.g., a server could provide a database resource, a facsimile resource, a voice massaging resource, etc.
In a typical network environment, a client/server architecture is employed to distribute resources between nodes connected to a network, e.g., LAN 24, WAN 26 or, ultimately, the Internet 20. The client is normally a stand-alone computer or workstation that runs specific software applications for its user, such as word processing programs, web browsers, spreadsheets, etc., and accesses shared network resources provided by a server. The server runs administration software that controls the network resources. Under the traditional client/server architecture, if an application running on the client requires a service that the client cannot provide, such as information retrieval from a particular database, the client must request the service from a server that controls the resource for that service, i.e., the server storing the database. However, the client must have specific knowledge of the server and its location so that it may request the service. Further, if the client wants additional services from other resources controlled by different servers, the client and respective servers must conduct sophisticated and separate data exchange sessions in order to integrate various services and resources.
Accordingly, a more effective method and apparatus for requesting services from resources provided by nodes connected to a network, and ultimately, the Internet, is needed. The method and apparatus should allow service requests to be communicated and processed in a manner totally transparent to the applications requesting them. In other words, the node requesting the service from a particular resource should neither have direct knowledge nor require direct connection to the node being accessed for the resource. Further, the method and apparatus should not be restricted to any internal network topologies and should be able to simultaneously access resources from different nodes regardless of the type of hardware or software implemented by that node.